/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ctrl;

import db.DAOAcidente;
import db.DTO.DTOAcidente;
import db.InterfaceDAO;
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;

/**
 *
 * @author SquadSoft
 */
public class Acidente {
    
    private int codigo;
    private String dt_Acidente;
    private String hora;
    private int horas_Trabalhas_Antes;
    private int codigo_Area;
    private String local;
    private String descricao;
    private int codigo_Acidente;
    private int codigo_Gravidade;
    private String retorno;
    private String restricao;
    private String incapacidade;
    private String matricula_Funcionario;
    private String codigo_Parte_Corpo;
    private String codigo_Natureza_Lesao;
    private String codigo_Agente_Causador;
    private String codigo_Situacao_Geradora;

    private boolean inserir;
    private List listaRegistro;
    //lida com a edição dos registros
    private List registro;
    private int registroId;
    private boolean atualizado;
    private int updateRegistroId;

    private int idToDel;

    public Acidente(){
        this.codigo = 0;
        this.dt_Acidente = null;
        this.hora = null;
        this.horas_Trabalhas_Antes = 0;
        this.codigo_Area = 0;
        this.local = null;
        this.descricao = null;
        this.codigo_Acidente = 0;
        this.codigo_Gravidade = 0;
        this.retorno = null;
        this.restricao = null;
        this.incapacidade = null;
        this.matricula_Funcionario = null;
        this.codigo_Parte_Corpo = null;
        this.codigo_Natureza_Lesao = null;
        this.codigo_Agente_Causador = null;
        this.codigo_Situacao_Geradora = null;
        this.inserir = false;
        this.listaRegistro = null;
    }

    /**
     * @return the codigo
     */
    public int getCodigo() {
        return codigo;
    }

    /**
     * @param codigo the codigo to set
     */
    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    /**
     * @return the dt_Acidente
     */
    public String getDt_Acidente() {
        return dt_Acidente;
    }

    /**
     * @param dt_Acidente the dt_Acidente to set
     */
    public void setDt_Acidente(String dt_Acidente) {
        //Modificando o formato da data
        if(atualizado){
            this.dt_Acidente = dt_Acidente;
            atualizado = false;
        }else{
            String tmpdata[] = dt_Acidente.split("/");
            this.dt_Acidente = tmpdata[2]+"-"+tmpdata[1]+"-"+tmpdata[0];
        }
    }

    /**
     * @return the hora
     */
    public String getHora() {
        return hora;
    }

    /**
     * @param hora the hora to set
     */
    public void setHora(String hora) {
        this.hora = hora;
    }

    /**
     * @return the horas_Trabalhas_Antes
     */
    public int getHoras_Trabalhas_Antes() {
        return horas_Trabalhas_Antes;
    }

    /**
     * @param horas_Trabalhas_Antes the horas_Trabalhas_Antes to set
     */
    public void setHoras_Trabalhas_Antes(int horas_Trabalhas_Antes) {
        this.horas_Trabalhas_Antes = horas_Trabalhas_Antes;
    }

    /**
     * @return the codigo_Area
     */
    public int getCodigo_Area() {
        return codigo_Area;
    }

    /**
     * @param codigo_Area the codigo_Area to set
     */
    public void setCodigo_Area(int codigo_Area) {
        this.codigo_Area = codigo_Area;
    }

    /**
     * @return the local
     */
    public String getLocal() {
        return local;
    }

    /**
     * @param local the local to set
     */
    public void setLocal(String local) {
        this.local = local;
    }

    /**
     * @return the descricao
     */
    public String getDescricao() {
        return descricao;
    }

    /**
     * @param descricao the descricao to set
     */
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    /**
     * @return the codigo_Acidente
     */
    public int getCodigo_Acidente() {
        return codigo_Acidente;
    }

    /**
     * @param codigo_Acidente the codigo_Acidente to set
     */
    public void setCodigo_Acidente(int codigo_Acidente) {
        this.codigo_Acidente = codigo_Acidente;
    }

    /**
     * @return the codigo_Gravidade
     */
    public int getCodigo_Gravidade() {
        return codigo_Gravidade;
    }

    /**
     * @param codigo_Gravidade the codigo_Gravidade to set
     */
    public void setCodigo_Gravidade(int codigo_Gravidade) {
        this.codigo_Gravidade = codigo_Gravidade;
    }

    /**
     * @return the retorno
     */
    public String getRetorno() {
        return retorno;
    }

    /**
     * @param retorno the retorno to set
     */
    public void setRetorno(String retorno) {
        this.retorno = retorno;
    }

    /**
     * @return the restricao
     */
    public String getRestricao() {
        return restricao;
    }

    /**
     * @param restricao the restricao to set
     */
    public void setRestricao(String restricao) {
        this.restricao = restricao;
    }

    /**
     * @return the incapacidade
     */
    public String getIncapacidade() {
        return incapacidade;
    }

    /**
     * @param incapacidade the incapacidade to set
     */
    public void setIncapacidade(String incapacidade) {
        this.incapacidade = incapacidade;
    }

    /**
     * @return the matricula_Funcionario
     */
    public String getMatricula_Funcionario() {
        return matricula_Funcionario;
    }

    /**
     * @param matricula_Funcionario the matricula_Funcionario to set
     */
    public void setMatricula_Funcionario(String matricula_Funcionario) {
        this.matricula_Funcionario = matricula_Funcionario;
    }

    /**
     * @return the codigo_Parte_Corpo
     */
    public String getCodigo_Parte_Corpo() {
        return codigo_Parte_Corpo;
    }

    /**
     * @param codigo_Parte_Corpo the codigo_Parte_Corpo to set
     */
    public void setCodigo_Parte_Corpo(String codigo_Parte_Corpo) {
        this.codigo_Parte_Corpo = codigo_Parte_Corpo;
    }

    /**
     * @return the codigo_Natureza_Lesao
     */
    public String getCodigo_Natureza_Lesao() {
        return codigo_Natureza_Lesao;
    }

    /**
     * @param codigo_Natureza_Lesao the codigo_Natureza_Lesao to set
     */
    public void setCodigo_Natureza_Lesao(String codigo_Natureza_Lesao) {
        this.codigo_Natureza_Lesao = codigo_Natureza_Lesao;
    }

    /**
     * @return the codigo_Agente_Causador
     */
    public String getCodigo_Agente_Causador() {
        return codigo_Agente_Causador;
    }

    /**
     * @param codigo_Agente_Causador the codigo_Agente_Causador to set
     */
    public void setCodigo_Agente_Causador(String codigo_Agente_Causador) {
        this.codigo_Agente_Causador = codigo_Agente_Causador;
    }

    /**
     * @return the codigo_Situacao_Geradora
     */
    public String getCodigo_Situacao_Geradora() {
        return codigo_Situacao_Geradora;
    }

    /**
     * @param codigo_Situacao_Geradora the codigo_Situacao_Geradora to set
     */
    public void setCodigo_Situacao_Geradora(String codigo_Situacao_Geradora) {
        this.codigo_Situacao_Geradora = codigo_Situacao_Geradora;
    }

    /**
     * @return the inserir
     */
    public boolean isInserir() throws SQLException {
        DTOAcidente dtoAcidente = new DTOAcidente(this.getCodigo(), this.getDt_Acidente(), this.getHora(), 
                this.getHoras_Trabalhas_Antes(), this.getCodigo_Area(), this.getLocal(), this.getDescricao(),
                this.getCodigo_Acidente(), this.getCodigo_Gravidade(), this.getRetorno(), this.getRestricao(),
                this.getIncapacidade(), this.getMatricula_Funcionario(), this.getCodigo_Parte_Corpo(),
                this.getCodigo_Natureza_Lesao(), this.getCodigo_Agente_Causador(), this.getCodigo_Situacao_Geradora());
        
        InterfaceDAO daoAcidente = new DAOAcidente();
        daoAcidente.insertRegistro(dtoAcidente);
        return true;
    }

    /**
     * @param inserir the inserir to set
     */
    public void setInserir(boolean inserir) {
        this.inserir = inserir;
    }

    /**
     * @return the listaRegistro
     */
    public Collection getListaRegistro() {
        DAOAcidente daoAcidente = new DAOAcidente();
        listaRegistro = (List) daoAcidente.recuperaRegistros();
        return listaRegistro;
    }

    /**
     * @return the idToDel
     */
    public int getIdToDel() {
       return this.idToDel;
    }

    /**
     * @param idToDel the idToDel to set
     */
    public void setIdToDel(int idToDel) {
        this.idToDel = idToDel;
         InterfaceDAO daoAcidente = new DAOAcidente();
        daoAcidente.deleteRegistroById(this.idToDel);
       
    }

    /**
     * @return the registro
     */
    public List getRegistro() {
        System.out.print(this.registroId);
        InterfaceDAO daoAcidente = new DAOAcidente();
        this.registro = (List) daoAcidente.recuperaRegistroPorPK(this.registroId);
        return this.registro;
    }

    /**
     * @param registro the registro to set
     */
    public void setRegistro(List registro) {
        this.registro = registro;
    }

    /**
     * @return the registroId
     */
    public int getRegistroId() {
        return registroId;
    }

    /**
     * @param registroId the registroId to set
     */
    public void setRegistroId(int registroId) {
        this.registroId = registroId;
    }

    /**
     * @return the atualizado
     */
    public boolean isAtualizado() throws SQLException {
         DTOAcidente dtoAcidente = new DTOAcidente(this.getCodigo(), this.getDt_Acidente(), this.getHora(),
                this.getHoras_Trabalhas_Antes(), this.getCodigo_Area(), this.getLocal(), this.getDescricao(),
                this.getCodigo_Acidente(), this.getCodigo_Gravidade(), this.getRetorno(), this.getRestricao(),
                this.getIncapacidade(), this.getMatricula_Funcionario(), this.getCodigo_Parte_Corpo(),
                this.getCodigo_Natureza_Lesao(), this.getCodigo_Agente_Causador(), this.getCodigo_Situacao_Geradora());

        InterfaceDAO daoAcidente = new DAOAcidente();
        daoAcidente.updateRegistro(dtoAcidente,this.updateRegistroId);
        return true;
    }

    /**
     * @param atualizado the atualizado to set
     */
    public void setAtualizado(boolean atualizado) {
        this.atualizado = atualizado;
    }

    /**
     * @return the updateRegistroId
     */
    public int getUpdateRegistroId() {
        return updateRegistroId;
    }

    /**
     * @param updateRegistroId the updateRegistroId to set
     */
    public void setUpdateRegistroId(int updateRegistroId) {
        this.updateRegistroId = updateRegistroId;
    }
}
